#ifndef TMX_ASSET_HPP_INCLUDED
#define TMX_ASSET_HPP_INCLUDED
#include <GQE/Core/interfaces/TAsset.hpp>
#include <TmxParser/Tmx.h>
/// Provides the Image asset class
class TmxAsset : public GQE::TAsset<Tmx::Map>
{
  public:
    /**
     * ImageAsset default constructor is used when you don't know the asset
     * filename until later.
     */
    TmxAsset();

    /**
     * ImageAsset constructor
     * @param[in] theAssetID to uniquely identify this asset
     * @param[in] theLoadTime (Now, Later) of when to load this asset
     * @param[in] theLoadStyle (File, Mem, Network) to use when loading this asset
     * @param[in] theDropTime at (Zero, Exit) for when to unload this asset
     */
    TmxAsset(const GQE::typeAssetID theAssetID,
        GQE::AssetLoadTime theLoadTime = GQE::AssetLoadLater,
        GQE::AssetLoadStyle theLoadStyle = GQE::AssetLoadFromFile,
        GQE::AssetDropTime theDropTime = GQE::AssetDropAtZero);

    /**
     * ImageAsset deconstructor
     */
    virtual ~TmxAsset();

  protected:

  private:
    // Variables
    ///////////////////////////////////////////////////////////////////////////
}; // class ImageAsset
#endif
